// import config from '@/config.js'
/**
 * VUE3 用其作全局，全局变量、全局方法等均设置于此
 */
import {
	store as uniIdStore,
	mutations as uniIdMutations
} from '@/uni_modules/uni-id-pages/common/store.js';

import uniStarterConfig from '@/uni-starter.config'
// import requestUsaNode from '@/common/wjf-modules/requestUsaNode.js';
/**
 * 自定义一些常用的变量和方法，混入到页面中，供调用
 */
export default {
	data() {
		return {
			isShowLoginDialog: false,
			systemInfo: {}
		}
	},
	computed: {
		userInfo() {
			return uniIdStore.userInfo;
		},
		uniStarterConfig() {
			return uniStarterConfig
		},
		
	},
	onLoad() {
		uni.getSystemInfo({
			success: (res) => {
				Object.assign(this.systemInfo, res)
			}
		})
	},
	/**
	 * 
	 */
	methods: {
		log(data) {
			console.log(JSON.parse(JSON.stringify(data)))
		},
		/**
		 * 封装uv-toast插件,生成通用信息显示、提示
		 * 
		 */
		$msgToast(param={}) {
			uni.hideLoading()
			let {
				title,
				
			}=param
			if (!title) return;
			uni.showToast({
				title,
				duration: duration,
				mask: mask,
				icon: icon
			});
		},
		/**
		 * 操作成功消息
		 */
		actSuccess(title = '', duration = 1500, mask) {
			this.$message(title, duration, 'success', mask);
		},
		/**
		 * 弹窗二次封装
		 * @param {Object} callback
		 * @param {Object} content
		 * @param {Object} title
		 */
		confirmAction(callback, content = "", title = "") {
			console.log("confirmAction")
			//弹出确定操作
			uni.showModal({
				title,
				content,
				success: (res) => {
					if (res.confirm) {
						callback();
					}
				}
			})
		},
		/**
		 * 定时返回，用于提交成功后，消息显示完成后，跳转其他页面
		 * @param {String} isRefresh 是否刷新上一页数据
		 * @param {Object} time 跳转时间
		 */
		navTimeBack(isRefresh, time = 2000, callback = false) {
			setTimeout(() => {
				if (isRefresh) {
					try {
						//需要上一个页面定义loadData
						this.getOpenerEventChannel().emit('refreshData')
					} catch (e) {
						console.log("刷新上一页数据错误");
					}
				}
				uni.navigateBack({})
				if (callback) {
					callback()
				}
			}, time);
		},
		/**
		 * 获取上一个页面传过来的数据,对象是最好的，不要来数组
		 * @param {Boolean} isAutoSet 是否设置到data数据中
		 */
		getItemData(isAutoSet) {
			let data = uni.getStorageSync(this.itemDataKey);
			if (isAutoSet && data) {
				//数组不允许设置
				//console.log(typeof(data))
				if (typeof(data) == "array") {
					return data;
				}
				for (let key in data) {
					this[key] = data[key];
				}
			}
			return data;
		},
		/**
		 * 自定义跳转页面
		 * @param {String} url
		 * @param {Object} item 传递到下一界面的值
		 * @param {Object} options
		 * @param {Boolean} options.login 是否检测登录  
		 * 相当于一个路由管理
		 */
		wjfNavTo(url, item, options = {}) {
			if (!url) {
				return;
			}
			uni.navigateTo({
				url,
				success: res => {},
				fail: () => {},
				complete: () => {}
			});
		},
		/**
		 * navigatorTo跳转页面
		 * @param {String} url
		 * @param {Object} item 传递到下一界面的值
		 * @param {Object} options
		 * @param {Boolean} options.login 是否检测登录  
		 * 相当于一个路由管理
		 */
		navTo(url, item, options = {}) {
			if (!url) {
				return;
			}
			// console.log("url", url)
			// console.log(options.login);

			uni.navigateTo({
				url,
				events: {
					refreshData: () => {
						//一般整页刷新
						this.loadData()
					},
					addData: (e) => {
						console.log("mixin addData", e)
						//用于某一项数据的更新
						this.editData(e)
					}
				},
				fail: () => {
					console.log("navigateTo fail")
					//改用switch
					uni.switchTab({
						url: url,
						success: () => {
							//分类页面，特殊处理参数
							if (url.indexOf("index/category") != -1 && url.indexOf("id") != -
								1) {
								let cid = url.substr(url.indexOf("id=") + 3);
								uni.$emit("changeMainCid", cid)
								setTimeout(() => {
									//防止分类没有初始化，点两下也无所谓
									uni.$emit("changeMainCid", cid)
								}, 1000)
							}
						}
					})
				}
			})
		},
	},
}